package com.sz.biz.logistics.base.service;

import com.sz.biz.logistics.base.entity.WeightSchema;
import com.sz.biz.logistics.base.dto.WeightSchemaDto;
import com.sz.common.base.dto.QResultDto;
import com.sz.common.base.dto.QueryParams;

import java.util.Date;
import java.util.List;

/**
 * Function: ExchangeRateService <br>
 * Author: xutao <br>
 * Date: 17/2/17.
 */
public interface WeightSchemaService {

    void refreshCache();

    /**
     * 新增计重区间
     *
     * @param weightSchemaDto
     * @return
     * @throws Exception
     */
    int addWeightSection(WeightSchemaDto weightSchemaDto);

    /**
     * 修改计重区间
     *
     * @param weightSchemaDto
     * @return
     * @throws Exception
     */
    int updateWeightSection(WeightSchemaDto weightSchemaDto);

    /**
     * 删除指定计重区间
     *
     * @param listId
     * @return
     * @throws Exception
     */
    void deleteWeightSection(List<Integer> listId);

    /**
     * 查找指定货币汇率信息
     *
     * @param params:查询关键字
     * @return
     * @throws Exception
     */
    QResultDto findWeightSection(QueryParams params);

    /**
     * 获取数据区间尾巴记录
     *
     * @param id:
     */
    QResultDto getMaxEndPoint(int id);

    /**
     * 检查记录是否已经存在
     *
     * @return
     */
    boolean isExistedWeightSchema(WeightSchema weightSchema);

    /**
     * 根据uid查询可用生效的实体
     *
     * @param uid 主键id
     * @return 查询出来的实体对象
     */
    WeightSchemaDto findActivedByUid(String uid);

    /**
     * 根据uid查询可用生效的实体
     *
     * @param uid  uid
     * @param time 时间点
     * @return 查询出来的实体对象
     */
    WeightSchemaDto findByUidAndTime(String uid, Date time);


}
